<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSRF攻击介绍</title>
</head>
<body>
<h1>CSRF攻击介绍：</h1>
<p>CSRF（Cross Site Request Forgery，跨站域请求伪造），也被称为 “One Click Attack” 或者 Session Riding，通常缩写为 CSRF 或者 XSRF 。</p>
<p>尽管听起来像跨站脚本（XSS），但它与XSS非常不同，并且攻击方式几乎相左。XSS 利用站点内的信任用户，而 CSRF 则通过伪装成来自受信任用户的请求来利用受信任的网站。</p>
<h1>CSRF攻击产生原因及威胁：</h1>
<h2>CSRF攻击产生原因:</h2>
<p>在了解 CSRF 之前我们需要科普两个前提。首先是登录权限验证的方式有很多种，目前绝大多数网站采用的还是 session 会话任务的方式。session 机制简单的来说就是服务端使用一个键值对记录登录信息，同时在 cookie 中将 session id（即刚才说的键）存储到 cookie 中。另外我们又知道浏览器中 HTTP(s) 请求是会自动帮我们把 cookie 带上传给服务端的。这样在每次请求的时候通过 cookie 获取 session id，然后通过它在服务端获取登录信息即可完成用户权限的校验。</p>
<p>本来这也是个不错的功能。但是由于 cookie 实在是太开放了，如果一个用户在 A 网站登录了，如果用户在 B 网站访问的时候发送了一个 A 网站的请求，那么这个请求其实是带有这个用户在 A 网站的登录信息的。如果这时候 B 网站的 A 网站请求是用户不知道的，那就是非常严重的危害了。以上的过程就是跨站请求攻击，即 Cross-Site Request Forgery，即 CSRF。</p>
<h2>CSRF攻击带来的威胁主要有如下几点:</h2>
<p>简单总结 CSRF 漏洞就是利用网站权限校验方面的漏洞在用户不知觉的情况下发送请求，达到“伪装”用户的目的。攻击者利用 CSRF 实现的攻击主要有以下几种：</p>
<ul>
    <li>攻击者能够欺骗受害用户完成该受害者所允许的任一状态改变的操作，比如：更新账号细节，完成购物，注销甚至登录等操作</li>
    <li>获取用户的隐私数据</li>
    <li>配合其他漏洞攻击</li>
    <li>CSRF 蠕虫</li>
</ul>
<h1>测试环境</h1>
<h2>1.GET型CSRF</h2>
<p>已知该环境为一个修改账号密码界面。</p>
<p>任务：通过CSRF攻击伪造请求创建一个网页，点击该网页既可以修改密码。</p>
<h2>1.POST型CSRF</h2>
<p>已知该环境为一个输入窗口，输入的信息会储存在数据库中。</p>
<p>任务：通过CSRF攻击伪造请求创建一个网页，点击该网页可以在数据库中添加一条信息。</p>
</body>
</html>